#ifndef INT_TO_PERDO_TRANSLATOR_H
#define INT_TO_PERDO_TRANSLATOR_H

#include "SymbolTable.h"
#include <istream>
#include <ostream>
#include <string>
#include <sstream>


class IntToPerdoTranslator
{
	public:
		IntToPerdoTranslator(std::istream * In, std::ostream * Out, SymbolTable * Sym)
			:in(In), out(Out), labelCount(0), sym(Sym)
		{}

		void writeBeginning();
		void translate();
		void OutputCase(std::string sWord, std::stringstream & ss);

	private:
		//////////////////////////////////////////
		std::string getLabel();
		//////////////////////////////////////////
		std::istream * in;
		std::ostream * out;
		std::string sLabel;		// Needed b/c of flow commands (if statements)
		int labelCount;
		SymbolTable * sym;
		//////////////////////////////////////////
};

#endif

